module.exports = {
    root: true,
    plugins: ['stylelint-order'],
    extends: ['stylelint-config-standard', 'stylelint-config-recommended-less', 'stylelint-config-prettier'],
    customSyntax: 'postcss-html',
    rules: {
        "indentation": 4,
        'function-no-unknown': null,
        'selector-class-pattern': null,
        'keyframes-name-pattern': null,
        'selector-pseudo-class-no-unknown': [
            true,
            {
                ignorePseudoClasses: ['global', 'deep'],
            },
        ],
        'selector-pseudo-element-no-unknown': [
            true,
            {
                ignorePseudoElements: ['v-deep'],
            },
        ],
        'at-rule-no-unknown': [
            true,
            {
                ignoreAtRules: ['tailwind', 'apply', 'variants', 'responsive', 'screen', 'function', 'if', 'each', 'include', 'mixin'],
            },
        ],
        'no-empty-source': null,
        'string-quotes': null,
        'named-grid-areas-no-invalid': null,
        'unicode-bom': 'never',
        'no-descending-specificity': null,
        'font-family-no-missing-generic-family-keyword': null,
        'declaration-colon-space-after': 'always-single-line',
        'declaration-colon-space-before': 'never',
        'value-no-vendor-prefix': null,
        'declaration-block-no-duplicate-properties': null,
        'no-eol-whitespace': true,
        'declaration-block-trailing-semicolon': null,
        'declaration-block-no-redundant-longhand-properties': null,
        'rule-empty-line-before': [
            'always',
            {
                except: ['after-single-line-comment', 'first-nested'],
            },
        ],
        'block-closing-brace-empty-line-before': ["never"],
        'at-rule-empty-line-before': [
            "always",
            {
                ignore: ['inside-block', 'blockless-after-same-name-blockless']
            }
        ],
        'unit-no-unknown': [true, {
            ignoreUnits: ['rpx']
        }],
        'order/order': [
            [
                'dollar-variables',
                'custom-properties',
                'at-rules',
                'declarations',
                {
                    type: 'at-rule',
                    name: 'supports',
                },
                {
                    type: 'at-rule',
                    name: 'media',
                },
                'rules',
            ],
            {
                severity: 'warning'
            },
        ],
    },
    ignoreFiles: ['**/*.js', '**/*.jsx', '**/*.tsx', '**/*.ts'],
    overrides: [{
            files: ['*.vue', '**/*.vue', '*.html', '**/*.html'],
            extends: ['stylelint-config-recommended'],
            rules: {
                'keyframes-name-pattern': null,
                'selector-pseudo-class-no-unknown': [
                    true,
                    {
                        ignorePseudoClasses: ['deep', 'global'],
                    },
                ],
                'selector-pseudo-element-no-unknown': [
                    true,
                    {
                        ignorePseudoElements: ['v-deep', 'v-global', 'v-slotted'],
                    },
                ],
            },
        },
        {
            files: ['*.less', '**/*.less'],
            customSyntax: 'postcss-less',
            extends: ['stylelint-config-standard', 'stylelint-config-recommended-vue'],
        },
    ],
};
